home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / cmds / gdb-4.5 / dist / include / opcode / mips.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-03-06  |  13.8 KB  |  367 lines

  1. /* Mips opcde list for GDB, the GNU debugger.
  2.    Copyright 1989, 1992 Free Software Foundation, Inc.
  3.    Contributed by Nobuyuki Hikichi(hikichi@sra.junet)
  4.    Made to work for little-endian machines, and debugged
  5.    by Per Bothner (bothner@cs.wisc.edu).
  6.    Many fixes contributed by Frank Yellin (fy@lucid.com).
  7.  
  8. This file is part of GDB.
  9.  
  10. GDB is free software; you can redistribute it and/or modify
  11. it under the terms of the GNU General Public License as published by
  12. the Free Software Foundation; either version 1, or (at your option)
  13. any later version.
  14.  
  15. GDB is distributed in the hope that it will be useful,
  16. but WITHOUT ANY WARRANTY; without even the implied warranty of
  17. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  18. GNU General Public License for more details.
  19.  
  20. You should have received a copy of the GNU General Public License
  21. along with GDB; see the file COPYING.  If not, write to
  22. the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  23.  
  24. /* FIXME!  This assumes that a host compiler will lay out
  25.    bit fields in a particular order based on its byte order.
  26.    Fix this with shifts and masks. */
  27. #if HOST_BYTE_ORDER == BIG_ENDIAN
  28. #define BIT_FIELDS_2(a,b) a;b;
  29. #define BIT_FIELDS_4(a,b,c,d) a;b;c;d;
  30. #define BIT_FIELDS_6(a,b,c,d,e,f) a;b;c;d;e;f;
  31. #else
  32. #define BIT_FIELDS_2(a,b) b;a;
  33. #define BIT_FIELDS_4(a,b,c,d) d;c;b;a;
  34. #define BIT_FIELDS_6(a,b,c,d,e,f) f;e;d;c;b;a;
  35. #endif
  36.  
  37. struct op_i_fmt
  38. {
  39. BIT_FIELDS_4(
  40.   unsigned op : 6,
  41.   unsigned rs : 5,
  42.   unsigned rt : 5,
  43.   unsigned immediate : 16)
  44. };
  45.  
  46. struct op_j_fmt
  47. {
  48. BIT_FIELDS_2(
  49.   unsigned op : 6,
  50.   unsigned target : 26)
  51. };
  52.  
  53. struct op_r_fmt
  54. {
  55. BIT_FIELDS_6(
  56.   unsigned op : 6,
  57.   unsigned rs : 5,
  58.   unsigned rt : 5,
  59.   unsigned rd : 5,
  60.   unsigned shamt : 5,
  61.   unsigned funct : 6)
  62. };
  63.  
  64.  
  65. struct fop_i_fmt
  66. {
  67. BIT_FIELDS_4(
  68.   unsigned op : 6,
  69.   unsigned rs : 5,
  70.   unsigned rt : 5,
  71.   unsigned immediate : 16)
  72. };
  73.  
  74. struct op_b_fmt
  75. {
  76. BIT_FIELDS_4(
  77.   unsigned op : 6,
  78.   unsigned rs : 5,
  79.   unsigned rt : 5,
  80.   short delta : 16)
  81. };
  82.  
  83. struct fop_r_fmt
  84. {
  85. BIT_FIELDS_6(
  86.   unsigned op : 6,
  87.   unsigned fmt : 5,
  88.   unsigned ft : 5,
  89.   unsigned fs : 5,
  90.   unsigned fd : 5,
  91.   unsigned funct : 6)
  92. };
  93.  
  94. struct mips_opcode
  95. {
  96.   char *name;
  97.   unsigned long opcode;
  98.   unsigned long match;
  99.   char *args;
  100.   int bdelay; /* Nonzero if delayed branch.  */
  101. };
  102.  
  103. /* args format;
  104.  
  105.    "s" rs: source register specifier
  106.    "t" rt: target register
  107.    "i" immediate
  108.    "a" target address
  109.    "c" branch condition
  110.    "d" rd: destination register specifier
  111.    "h" shamt: shift amount
  112.    "f" funct: function field
  113.  
  114.   for fpu
  115.    "S" fs source 1 register
  116.    "T" ft source 2 register
  117.    "D" distination register
  118. */
  119.  
  120. #define one(x) (x << 26)
  121. #define op_func(x, y) ((x << 26) | y)
  122. #define op_cond(x, y) ((x << 26) | (y << 16))
  123. #define op_rs_func(x, y, z) ((x << 26) | (y << 21) | z)
  124. #define op_rs_b11(x, y, z) ((x << 26) | (y << 21) | z)
  125. #define op_o16(x, y) ((x << 26) | (y << 16))
  126. #define op_bc(x, y, z) ((x << 26) | (y << 21) | (z << 16))
  127.  
  128. struct mips_opcode mips_opcodes[] = 
  129. {
  130. /* These first opcodes are special cases of the ones in the comments */
  131.   {"nop",    0,        0xffffffff,         /*li*/    "", 0},
  132.   {"li",    op_bc(9,0,0),    op_bc(0x3f,31,0),    /*addiu*/    "t,j", 0},
  133.   {"b",        one(4),        0xffff0000,         /*beq*/    "b", 1},
  134.   {"move",    op_func(0, 33),    op_cond(0x3f,31)|0x7ff,/*addu*/    "d,s", 0},
  135.  
  136.   {"sll",    op_func(0, 0),    op_func(0x3f, 0x3f),        "d,t,h", 0},
  137.   {"srl",    op_func(0, 2),    op_func(0x3f, 0x3f),        "d,t,h", 0},
  138.   {"sra",    op_func(0, 3),    op_func(0x3f, 0x3f),        "d,t,h", 0},
  139.   {"sllv",    op_func(0, 4),    op_func(0x3f, 0x7ff),        "d,t,s", 0},
  140.   {"srlv",    op_func(0, 6),    op_func(0x3f, 0x7ff),        "d,t,s", 0},
  141.   {"srav",    op_func(0, 7),    op_func(0x3f, 0x7ff),        "d,t,s", 0},
  142.   {"jr",    op_func(0, 8),    op_func(0x3f, 0x1fffff),    "s", 1},
  143.   {"jalr",    op_func(0, 9),    op_func(0x3f, 0x1f07ff),    "d,s", 1},
  144.   {"syscall",    op_func(0, 12),    op_func(0x3f, 0x3f),        "", 0},
  145.   {"break",    op_func(0, 13),    op_func(0x3f, 0x3f),        "", 0},
  146.   {"mfhi",      op_func(0, 16), op_func(0x3f, 0x03ff07ff),      "d", 0},
  147.   {"mthi",      op_func(0, 17), op_func(0x3f, 0x1fffff),        "s", 0},
  148.   {"mflo",      op_func(0, 18), op_func(0x3f, 0x03ff07ff),      "d", 0},
  149.   {"mtlo",      op_func(0, 19), op_func(0x3f, 0x1fffff),        "s", 0},
  150.   {"mult",    op_func(0, 24),    op_func(0x3f, 0xffff),        "s,t", 0},
  151.   {"multu",    op_func(0, 25),    op_func(0x3f, 0xffff),        "s,t", 0},
  152.   {"div",    op_func(0, 26),    op_func(0x3f, 0xffff),        "s,t", 0},
  153.   {"divu",    op_func(0, 27),    op_func(0x3f, 0xffff),        "s,t", 0},
  154.   {"add",    op_func(0, 32),    op_func(0x3f, 0x7ff),        "d,s,t", 0},
  155.   {"addu",    op_func(0, 33),    op_func(0x3f, 0x7ff),        "d,s,t", 0},
  156.   {"sub",    op_func(0, 34),    op_func(0x3f, 0x7ff),        "d,s,t", 0},
  157.   {"subu",    op_func(0, 35),    op_func(0x3f, 0x7ff),        "d,s,t", 0},
  158.   {"and",    op_func(0, 36),    op_func(0x3f, 0x7ff),        "d,s,t", 0},
  159.   {"or",    op_func(0, 37),    op_func(0x3f, 0x7ff),        "d,s,t", 0},
  160.   {"xor",    op_func(0, 38),    op_func(0x3f, 0x7ff),        "d,s,t", 0},
  161.   {"nor",    op_func(0, 39),    op_func(0x3f, 0x7ff),        "d,s,t", 0},
  162.   {"slt",    op_func(0, 42),    op_func(0x3f, 0x7ff),        "d,s,t", 0},
  163.   {"sltu",    op_func(0, 43),    op_func(0x3f, 0x7ff),        "d,s,t", 0},
  164.  
  165.   {"bltz",    op_cond (1, 0),    op_cond(0x3f, 0x1f),        "s,b", 1},
  166.   {"bgez",    op_cond (1, 1),    op_cond(0x3f, 0x1f),        "s,b", 1},
  167.   {"bltzal",    op_cond (1, 16),op_cond(0x3f, 0x1f),        "s,b", 1},
  168.   {"bgezal",    op_cond (1, 17),op_cond(0x3f, 0x1f),        "s,b", 1},
  169.  
  170.  
  171.   {"j",        one(2),        one(0x3f),            "a", 1},
  172.   {"jal",    one(3),        one(0x3f),            "a", 1},
  173.   {"beq",    one(4),        one(0x3f),            "s,t,b", 1},
  174.   {"bne",    one(5),        one(0x3f),            "s,t,b", 1},
  175.   {"blez",    one(6),        one(0x3f) | 0x1f0000,        "s,b", 1},
  176.   {"bgtz",    one(7),        one(0x3f) | 0x1f0000,        "s,b", 1},
  177.   {"addi",    one(8),        one(0x3f),            "t,s,j", 0},
  178.   {"addiu",    one(9),        one(0x3f),            "t,s,j", 0},
  179.   {"slti",    one(10),    one(0x3f),            "t,s,j", 0},
  180.   {"sltiu",    one(11),    one(0x3f),            "t,s,j", 0},
  181.   {"andi",    one(12),    one(0x3f),            "t,s,i", 0},
  182.   {"ori",    one(13),    one(0x3f),            "t,s,i", 0},
  183.   {"xori",    one(14),    one(0x3f),            "t,s,i", 0},
  184.     /* rs field is don't care field? */
  185.   {"lui",    one(15),    one(0x3f),            "t,i", 0},
  186.  
  187. /* co processor 0 instruction */
  188.   {"mfc0",    op_rs_b11 (16, 0, 0),    op_rs_b11(0x3f, 0x1f, 0x1ffff),    "t,d", 0},
  189.   {"cfc0",    op_rs_b11 (16, 2, 0),    op_rs_b11(0x3f, 0x1f, 0x1ffff),    "t,d", 0},
  190.   {"mtc0",    op_rs_b11 (16, 4, 0),    op_rs_b11(0x3f, 0x1f, 0x1ffff),    "t,d", 0},
  191.   {"ctc0",    op_rs_b11 (16, 6, 0),    op_rs_b11(0x3f, 0x1f, 0x1ffff),    "t,d", 0},
  192.  
  193.   {"bc0f",    op_o16(16, 0x100),    op_o16(0x3f, 0x3ff),    "b", 1},
  194.   {"bc0f",    op_o16(16, 0x180),    op_o16(0x3f, 0x3ff),    "b", 1},
  195.   {"bc0t",    op_o16(16, 0x101),    op_o16(0x3f, 0x3ff),    "b", 1},
  196.   {"bc0t",    op_o16(16, 0x181),    op_o16(0x3f, 0x3ff),    "b", 1},
  197.  
  198.   {"tlbr",    op_rs_func(16, 0x10, 1), ~0, "", 0},
  199.   {"tlbwi",    op_rs_func(16, 0x10, 2), ~0, "", 0},
  200.   {"tlbwr",    op_rs_func(16, 0x10, 6), ~0, "", 0},
  201.   {"tlbp",    op_rs_func(16, 0x10, 8), ~0, "", 0},
  202.   {"rfe",    op_rs_func(16, 0x10, 16), ~0, "", 0},
  203.  
  204.   {"mfc1",    op_rs_b11 (17, 0, 0),    op_rs_b11(0x3f, 0x1f, 0),"t,S", 0},
  205.   {"cfc1",    op_rs_b11 (17, 2, 0),    op_rs_b11(0x3f, 0x1f, 0),"t,S", 0},
  206.   {"mtc1",    op_rs_b11 (17, 4, 0),    op_rs_b11(0x3f, 0x1f, 0),"t,S", 0},
  207.   {"ctc1",    op_rs_b11 (17, 6, 0),    op_rs_b11(0x3f, 0x1f, 0),"t,S", 0},
  208.  
  209.   {"bc1f",    op_o16(17, 0x100),    op_o16(0x3f, 0x3ff),    "b", 1},
  210.   {"bc1f",    op_o16(17, 0x180),    op_o16(0x3f, 0x3ff),    "b", 1},
  211.   {"bc1t",    op_o16(17, 0x101),    op_o16(0x3f, 0x3ff),    "b", 1},
  212.   {"bc1t",    op_o16(17, 0x181),    op_o16(0x3f, 0x3ff),    "b", 1},
  213.  
  214. /* fpu instruction */
  215.   {"add.s",    op_rs_func(17, 0x10, 0),
  216.             op_rs_func(0x3f, 0x1f, 0x3f),    "D,S,T", 0},
  217.   {"add.d",    op_rs_func(17, 0x11, 0),
  218.             op_rs_func(0x3f, 0x1f, 0x3f),    "D,S,T", 0},
  219.   {"sub.s",    op_rs_func(17, 0x10, 1),
  220.             op_rs_func(0x3f, 0x1f, 0x3f),    "D,S,T", 0},
  221.   {"sub.d",    op_rs_func(17, 0x11, 1),
  222.             op_rs_func(0x3f, 0x1f, 0x3f),    "D,S,T", 0},
  223.   {"mul.s",    op_rs_func(17, 0x10, 2),
  224.             op_rs_func(0x3f, 0x1f, 0x3f),    "D,S,T", 0},
  225.   {"mul.d",    op_rs_func(17, 0x11, 2),
  226.             op_rs_func(0x3f, 0x1f, 0x3f),    "D,S,T", 0},
  227.   {"div.s",    op_rs_func(17, 0x10, 3),
  228.             op_rs_func(0x3f, 0x1f, 0x3f),    "D,S,T", 0},
  229.   {"div.d",    op_rs_func(17, 0x11, 3),
  230.             op_rs_func(0x3f, 0x1f, 0x3f),    "D,S,T", 0},
  231.   {"abs.s",    op_rs_func(17, 0x10, 5),
  232.             op_rs_func(0x3f, 0x1f, 0x1f003f),    "D,S", 0},
  233.   {"abs.d",    op_rs_func(17, 0x11, 5),
  234.             op_rs_func(0x3f, 0x1f, 0x1f003f),    "D,S", 0},
  235.   {"mov.s",    op_rs_func(17, 0x10, 6),
  236.             op_rs_func(0x3f, 0x1f, 0x1f003f),    "D,S", 0},
  237.   {"mov.d",    op_rs_func(17, 0x11, 6),
  238.             op_rs_func(0x3f, 0x1f, 0x1f003f),    "D,S", 0},
  239.   {"neg.s",    op_rs_func(17, 0x10, 7),
  240.             op_rs_func(0x3f, 0x1f, 0x1f003f),    "D,S", 0},
  241.   {"neg.d",    op_rs_func(17, 0x11, 7),
  242.             op_rs_func(0x3f, 0x1f, 0x1f003f),    "D,S", 0},
  243.   {"cvt.s.s",    op_rs_func(17, 0x10, 32),
  244.             op_rs_func(0x3f, 0x1f, 0x1f003f),    "D,S", 0},
  245.   {"cvt.s.d",    op_rs_func(17, 0x11, 32),
  246.             op_rs_func(0x3f, 0x1f, 0x1f003f),    "D,S", 0},
  247.   {"cvt.s.w",    op_rs_func(17, 0x14, 32),
  248.             op_rs_func(0x3f, 0x1f, 0x1f003f),    "D,S", 0},
  249.   {"cvt.d.s",    op_rs_func(17, 0x10, 33),
  250.             op_rs_func(0x3f, 0x1f, 0x1f003f),    "D,S", 0},
  251.   {"cvt.d.d",    op_rs_func(17, 0x11, 33),
  252.             op_rs_func(0x3f, 0x1f, 0x1f003f),    "D,S", 0},
  253.   {"cvt.d.w",    op_rs_func(17, 0x14, 33),
  254.             op_rs_func(0x3f, 0x1f, 0x1f003f),    "D,S", 0},
  255.   {"cvt.w.s",    op_rs_func(17, 0x10, 36),
  256.             op_rs_func(0x3f, 0x1f, 0x1f003f),    "D,S", 0},
  257.   {"cvt.w.d",    op_rs_func(17, 0x11, 36),
  258.             op_rs_func(0x3f, 0x1f, 0x1f003f),    "D,S", 0},
  259.   {"c.f.s",    op_rs_func(17, 0x10, 48),
  260.             op_rs_func(0x3f, 0x1f, 0x7ff),    "S,T", 0},
  261.   {"c.f.d",    op_rs_func(17, 0x11, 48),
  262.             op_rs_func(0x3f, 0x1f, 0x7ff),    "S,T", 0},
  263.   {"c.un.s",    op_rs_func(17, 0x10, 49),
  264.             op_rs_func(0x3f, 0x1f, 0x7ff),    "S,T", 0},
  265.   {"c.un.d",    op_rs_func(17, 0x11, 49),
  266.             op_rs_func(0x3f, 0x1f, 0x7ff),    "S,T", 0},
  267.   {"c.eq.s",    op_rs_func(17, 0x10, 50),
  268.             op_rs_func(0x3f, 0x1f, 0x7ff),    "S,T", 0},
  269.   {"c.eq.d",    op_rs_func(17, 0x11, 50),
  270.             op_rs_func(0x3f, 0x1f, 0x7ff),    "S,T", 0},
  271.   {"c.ueq.s",    op_rs_func(17, 0x10, 51),
  272.             op_rs_func(0x3f, 0x1f, 0x7ff),    "S,T", 0},
  273.   {"c.ueq.d",    op_rs_func(17, 0x11, 51),
  274.             op_rs_func(0x3f, 0x1f, 0x7ff),    "S,T", 0},
  275.   {"c.olt.s",    op_rs_func(17, 0x10, 52),
  276.             op_rs_func(0x3f, 0x1f, 0x7ff),    "S,T", 0},
  277.   {"c.olt.d",    op_rs_func(17, 0x11, 52),
  278.             op_rs_func(0x3f, 0x1f, 0x7ff),    "S,T", 0},
  279.   {"c.ult.s",    op_rs_func(17, 0x10, 53),
  280.             op_rs_func(0x3f, 0x1f, 0x7ff),    "S,T", 0},
  281.   {"c.ult.d",    op_rs_func(17, 0x11, 53),
  282.             op_rs_func(0x3f, 0x1f, 0x7ff),    "S,T", 0},
  283.   {"c.ole.s",    op_rs_func(17, 0x10, 54),
  284.             op_rs_func(0x3f, 0x1f, 0x7ff),    "S,T", 0},
  285.   {"c.ole.d",    op_rs_func(17, 0x11, 54),
  286.             op_rs_func(0x3f, 0x1f, 0x7ff),    "S,T", 0},
  287.   {"c.ule.s",    op_rs_func(17, 0x10, 55),
  288.             op_rs_func(0x3f, 0x1f, 0x7ff),    "S,T", 0},
  289.   {"c.ule.d",    op_rs_func(17, 0x11, 55),
  290.             op_rs_func(0x3f, 0x1f, 0x7ff),    "S,T", 0},
  291.   {"c.sf.s",    op_rs_func(17, 0x10, 56),
  292.             op_rs_func(0x3f, 0x1f, 0x7ff),    "S,T", 0},
  293.   {"c.sf.d",    op_rs_func(17, 0x11, 56),
  294.             op_rs_func(0x3f, 0x1f, 0x7ff),    "S,T", 0},
  295.   {"c.ngle.s",    op_rs_func(17, 0x10, 57),
  296.             op_rs_func(0x3f, 0x1f, 0x7ff),    "S,T", 0},
  297.   {"c.ngle.d",    op_rs_func(17, 0x11, 57),
  298.             op_rs_func(0x3f, 0x1f, 0x7ff),    "S,T", 0},
  299.   {"c.seq.s",    op_rs_func(17, 0x10, 58),
  300.             op_rs_func(0x3f, 0x1f, 0x7ff),    "S,T", 0},
  301.   {"c.seq.d",    op_rs_func(17, 0x11, 58),
  302.             op_rs_func(0x3f, 0x1f, 0x7ff),    "S,T", 0},
  303.   {"c.ngl.s",    op_rs_func(17, 0x10, 59),
  304.             op_rs_func(0x3f, 0x1f, 0x7ff),    "S,T", 0},
  305.   {"c.ngl.d",    op_rs_func(17, 0x11, 59),
  306.             op_rs_func(0x3f, 0x1f, 0x7ff),    "S,T", 0},
  307.   {"c.lt.s",    op_rs_func(17, 0x10, 60),
  308.             op_rs_func(0x3f, 0x1f, 0x7ff),    "S,T", 0},
  309.   {"c.lt.d",    op_rs_func(17, 0x11, 60),
  310.             op_rs_func(0x3f, 0x1f, 0x7ff),    "S,T", 0},
  311.   {"c.nge.s",    op_rs_func(17, 0x10, 61),
  312.             op_rs_func(0x3f, 0x1f, 0x7ff),    "S,T", 0},
  313.   {"c.nge.d",    op_rs_func(17, 0x11, 61),
  314.             op_rs_func(0x3f, 0x1f, 0x7ff),    "S,T", 0},
  315.   {"c.le.s",    op_rs_func(17, 0x10, 62),
  316.             op_rs_func(0x3f, 0x1f, 0x7ff),    "S,T", 0},
  317.   {"c.le.d",    op_rs_func(17, 0x11, 62),
  318.             op_rs_func(0x3f, 0x1f, 0x7ff),    "S,T", 0},
  319.   {"c.ngt.s",    op_rs_func(17, 0x10, 63),
  320.             op_rs_func(0x3f, 0x1f, 0x7ff),    "S,T", 0},
  321.   {"c.ngt.d",    op_rs_func(17, 0x11, 63),
  322.             op_rs_func(0x3f, 0x1f, 0x7ff),    "S,T", 0},
  323.  
  324. /* co processor 2 instruction */
  325.   {"mfc2",    op_rs_b11 (18, 0, 0),    op_rs_b11(0x3f, 0x1f, 0x1ffff),    "t,d", 0},
  326.   {"cfc2",    op_rs_b11 (18, 2, 0),    op_rs_b11(0x3f, 0x1f, 0x1ffff),    "t,d", 0},
  327.   {"mtc2",    op_rs_b11 (18, 4, 0),    op_rs_b11(0x3f, 0x1f, 0x1ffff),    "t,d", 0},
  328.   {"ctc2",    op_rs_b11 (18, 6, 0),    op_rs_b11(0x3f, 0x1f, 0x1ffff),    "t,d", 0},
  329.   {"bc2f",    op_o16(18, 0x100),    op_o16(0x3f, 0x3ff),    "b", 1},
  330.   {"bc2f",    op_o16(18, 0x180),    op_o16(0x3f, 0x3ff),    "b", 1},
  331.   {"bc2f",    op_o16(18, 0x101),    op_o16(0x3f, 0x3ff),    "b", 1},
  332.   {"bc2t",    op_o16(18, 0x181),    op_o16(0x3f, 0x3ff),    "b", 1},
  333.  
  334. /* co processor 3 instruction */
  335.   {"mtc3",    op_rs_b11 (19, 0, 0),    op_rs_b11(0x3f, 0x1f, 0x1ffff),    "t,d", 0},
  336.   {"cfc3",    op_rs_b11 (19, 2, 0),    op_rs_b11(0x3f, 0x1f, 0x1ffff),    "t,d", 0},
  337.   {"mtc3",    op_rs_b11 (19, 4, 0),    op_rs_b11(0x3f, 0x1f, 0x1ffff),    "t,d", 0},
  338.   {"ctc3",    op_rs_b11 (19, 6, 0),    op_rs_b11(0x3f, 0x1f, 0x1ffff),    "t,d", 0},
  339.   {"bc3f",    op_o16(19, 0x100),    op_o16(0x3f, 0x3ff),    "b", 1},
  340.   {"bc3f",    op_o16(19, 0x180),    op_o16(0x3f, 0x3ff),    "b", 1},
  341.   {"bc3t",    op_o16(19, 0x101),    op_o16(0x3f, 0x3ff),    "b", 1},
  342.   {"bc3t",    op_o16(19, 0x181),    op_o16(0x3f, 0x3ff),    "b", 1},
  343.  
  344.   {"lb",    one(32),    one(0x3f),        "t,j(s)", 0},
  345.   {"lh",    one(33),    one(0x3f),        "t,j(s)", 0},
  346.   {"lwl",    one(34),    one(0x3f),        "t,j(s)", 0},
  347.   {"lw",    one(35),    one(0x3f),        "t,j(s)", 0},
  348.   {"lbu",    one(36),    one(0x3f),        "t,j(s)", 0},
  349.   {"lhu",    one(37),    one(0x3f),        "t,j(s)", 0},
  350.   {"lwr",    one(38),    one(0x3f),        "t,j(s)", 0},
  351.   {"sb",    one(40),    one(0x3f),        "t,j(s)", 0},
  352.   {"sh",    one(41),    one(0x3f),        "t,j(s)", 0},
  353.   {"swl",    one(42),    one(0x3f),        "t,j(s)", 0},
  354.   {"swr",       one(46),        one(0x3f),              "t,j(s)", 0},
  355.   {"sw",    one(43),    one(0x3f),        "t,j(s)", 0},
  356.   {"lwc0",    one(48),    one(0x3f),        "t,j(s)", 0},
  357. /* for fpu */
  358.   {"lwc1",    one(49),    one(0x3f),        "T,j(s)", 0},
  359.   {"lwc2",    one(50),    one(0x3f),        "t,j(s)", 0},
  360.   {"lwc3",    one(51),    one(0x3f),        "t,j(s)", 0},
  361.   {"swc0",    one(56),    one(0x3f),        "t,j(s)", 0},
  362. /* for fpu */
  363.   {"swc1",    one(57),    one(0x3f),        "T,j(s)", 0},
  364.   {"swc2",    one(58),    one(0x3f),        "t,j(s)", 0},
  365.   {"swc3",    one(59),    one(0x3f),        "t,j(s)", 0},
  366. };
  367.